#!/usr/bin/python
# -*- coding:utf-8 -*-
# @author  : micah
# @time    :  
# @function: 
# @version :


from multiprocessing import Queue


# 1.创建一个队列对象，多个进程是可以同时访问这一个队列对象的
q = Queue()

# 2.在队列中上传数据
# q.put('测试信息1')
# q.put('测试信息2')
# q.put('测试信息3')

# 3.获取数据
# print(q.get())
# print(q.get())
# print(q.get())

# 4.如果当前队列上传的数据数量与调用次数一直，则队列为空
# print(q.get())  # 如果当前队列中没有数据了，则会一直等待其他进程进行数据上传

# 5. 判断当前队列是否为空
# print(q.empty())

# 6.判断当前队列是否已满
"""
当前这个方法必须要设置队列的最大长度
    q = Queue(3)   # 如果上传的数据超过最大长度，则会一直等待其他进程进行数据下载 
"""
# print(q.full())

# 7.如果当前队列为空，并取值不想等待
# print(q.get_nowait())  # 如果队列是空的则不会堵塞直接抛出异常

q.put(1)
q.put(2)
q.put(3)
q.put(4)

if not q.empty():  # 判断队列q是否为空，如果不为空则执行下一步，否则直接退出。
    for i in range(q.qsize()):  # 循环队列q的大小次数，即4次。
        print(q.get_nowait())
